package cn.tedu.sp04.order.controller;

import cn.tedu.sp01.pojo.Item;
import cn.tedu.sp01.pojo.Order;
import cn.tedu.sp01.pojo.User;
import cn.tedu.sp01.service.OrderService;
import cn.tedu.web.util.JsonResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.Arrays;

@RestController
@Slf4j
public class OrderController {
    @Autowired
    private OrderService orderService;

    @GetMapping("/{orderId}")
    public JsonResult<Order> getOrder(@PathVariable String orderId) {
        Order order = orderService.getOrder(orderId);
        return JsonResult.ok().data(order);
    }

    @GetMapping("/add")
    public JsonResult<?> addOrder() {
        Order order = new Order();
        order.setId("hg4f3d2dk7j6h656");
        order.setUser(new User(8,null,null));// 真实项目中应该获取已登录的用户
        order.setItems(Arrays.asList(new Item[] {
                new Item(1, "商品1", 3),
                new Item(2, "商品2", 2),
                new Item(3, "商品3", 5),
                new Item(4, "商品4", 1),
                new Item(5, "商品5", 2)
        }));
        orderService.addOrder(order);
        return JsonResult.ok().msg("添加订单成功");
    }

    // 用一个空方法过滤掉浏览器自动发起的对网站图标的请求
    // 避免影响测试
    @GetMapping("/favicon.ico")
    public void ico() {
        // 空方法
    }
}
